With the digital age, every-day users of smartphones are capable of taking a large number of photographs and videos. Managing this large number of photographs and videos has become a challenge. A fundamental component of this challenge is clustering collections of photographs and videos into groupings which are meaningful for the user, without burdensome manual entry of metadata or selection by the user of photographs and videos to include or not include in a particular grouping. In addition, activities, such as trips, may occur across days, weeks, or months and may involve travel to multiple locations; a grouping of photographs and videos with respect to such an activity will need to be updated as time progresses. As noted, manual updating by the user is burdensome, may not be performed, or the criteria employed by the user may change and result in inconsistent and dissatisfying results. Programmatically creating groupings in such a context is challenging and may either form too many groupings or may include too many disparate items together into one group.